The field of the disclosure relates generally to parsing data objects and, more specifically, to automatic generation and execution of machine-executable object parsers based on protocol definitions.
At least some known network protocol analysis tools allow a user to define protocols in a file (e.g., text, XML, or binary) or in a database. A message corresponding to a protocol may be parsed by interpreting the contents of the protocol definition file/database. For example, the protocol definition may define the offsets and sizes (in bytes) of fields in the data that make up a network protocol message. Each time a message is to be processed (e.g., displayed), the message and the protocol definition are parsed, offsets are computed, and data are extracted.
Another practice is to compile protocol parsing source code into pre-compiled plug-ins, which eliminate the step of parsing the protocol definition each time a message is received but may be too inflexible for some uses. For example, an end user may be unable to add a custom message or make any other change to the protocol definition. Rather, to accommodate the desired change, a software developer must create a new protocol parsing plug-in by modifying the protocol parsing source code and compiling the modified source code into a plug-in, and distributing the plug-in to the end user.